/*******************************************************************************
 * Copyright (c) 2013-2017 Contributors to the Eclipse Foundation
 * 
 * See the NOTICE file distributed with this work for additional
 * information regarding copyright ownership.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Apache License,
 * Version 2.0 which accompanies this distribution and is available at
 * http://www.apache.org/licenses/LICENSE-2.0.txt
 ******************************************************************************/
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: AggregationService.proto

package mil.nga.giat.geowave.datastore.hbase.query.generated;

import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;

@SuppressFBWarnings
public final class AggregationProtos
{
	private AggregationProtos() {}

	public static void registerAllExtensions(
			com.google.protobuf.ExtensionRegistry registry ) {}

	public interface AggregationTypeOrBuilder extends
			com.google.protobuf.MessageOrBuilder
	{

		// required string name = 1;
		/**
		 * <code>required string name = 1;</code>
		 */
		boolean hasName();

		/**
		 * <code>required string name = 1;</code>
		 */
		java.lang.String getName();

		/**
		 * <code>required string name = 1;</code>
		 */
		com.google.protobuf.ByteString getNameBytes();

		// optional bytes params = 2;
		/**
		 * <code>optional bytes params = 2;</code>
		 */
		boolean hasParams();

		/**
		 * <code>optional bytes params = 2;</code>
		 */
		com.google.protobuf.ByteString getParams();
	}

	/**
	 * Protobuf type {@code AggregationType}
	 */
	public static final class AggregationType extends
			com.google.protobuf.GeneratedMessage implements
			AggregationTypeOrBuilder
	{
		// Use AggregationType.newBuilder() to construct.
		private AggregationType(
				com.google.protobuf.GeneratedMessage.Builder<?> builder ) {
			super(
					builder);
			this.unknownFields = builder.getUnknownFields();
		}

		private AggregationType(
				boolean noInit ) {
			this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance();
		}

		private static final AggregationType defaultInstance;

		public static AggregationType getDefaultInstance() {
			return defaultInstance;
		}

		public AggregationType getDefaultInstanceForType() {
			return defaultInstance;
		}

		private final com.google.protobuf.UnknownFieldSet unknownFields;

		@java.lang.Override
		public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
			return this.unknownFields;
		}

		private AggregationType(
				com.google.protobuf.CodedInputStream input,
				com.google.protobuf.ExtensionRegistryLite extensionRegistry )
				throws com.google.protobuf.InvalidProtocolBufferException {
			initFields();
			int mutable_bitField0_ = 0;
			com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet
					.newBuilder();
			try {
				boolean done = false;
				while (!done) {
					int tag = input.readTag();
					switch (tag) {
						case 0:
							done = true;
							break;
						default: {
							if (!parseUnknownField(
									input,
									unknownFields,
									extensionRegistry,
									tag)) {
								done = true;
							}
							break;
						}
						case 10: {
							bitField0_ |= 0x00000001;
							name_ = input.readBytes();
							break;
						}
						case 18: {
							bitField0_ |= 0x00000002;
							params_ = input.readBytes();
							break;
						}
					}
				}
			}
			catch (com.google.protobuf.InvalidProtocolBufferException e) {
				throw e.setUnfinishedMessage(this);
			}
			catch (java.io.IOException e) {
				throw new com.google.protobuf.InvalidProtocolBufferException(
						e.getMessage()).setUnfinishedMessage(this);
			}
			finally {
				this.unknownFields = unknownFields.build();
				makeExtensionsImmutable();
			}
		}

		public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
			return mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.internal_static_AggregationType_descriptor;
		}

		protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() {
			return mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.internal_static_AggregationType_fieldAccessorTable
					.ensureFieldAccessorsInitialized(
							mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType.class,
							mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType.Builder.class);
		}

		public static com.google.protobuf.Parser<AggregationType> PARSER = new com.google.protobuf.AbstractParser<AggregationType>() {
			public AggregationType parsePartialFrom(
					com.google.protobuf.CodedInputStream input,
					com.google.protobuf.ExtensionRegistryLite extensionRegistry )
					throws com.google.protobuf.InvalidProtocolBufferException {
				return new AggregationType(
						input,
						extensionRegistry);
			}
		};

		@java.lang.Override
		public com.google.protobuf.Parser<AggregationType> getParserForType() {
			return PARSER;
		}

		private int bitField0_;
		// required string name = 1;
		public static final int NAME_FIELD_NUMBER = 1;
		private java.lang.Object name_;

		/**
		 * <code>required string name = 1;</code>
		 */
		public boolean hasName() {
			return ((bitField0_ & 0x00000001) == 0x00000001);
		}

		/**
		 * <code>required string name = 1;</code>
		 */
		public java.lang.String getName() {
			java.lang.Object ref = name_;
			if (ref instanceof java.lang.String) {
				return (java.lang.String) ref;
			}
			else {
				com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
				java.lang.String s = bs.toStringUtf8();
				if (bs.isValidUtf8()) {
					name_ = s;
				}
				return s;
			}
		}

		/**
		 * <code>required string name = 1;</code>
		 */
		public com.google.protobuf.ByteString getNameBytes() {
			java.lang.Object ref = name_;
			if (ref instanceof java.lang.String) {
				com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
				name_ = b;
				return b;
			}
			else {
				return (com.google.protobuf.ByteString) ref;
			}
		}

		// optional bytes params = 2;
		public static final int PARAMS_FIELD_NUMBER = 2;
		private com.google.protobuf.ByteString params_;

		/**
		 * <code>optional bytes params = 2;</code>
		 */
		public boolean hasParams() {
			return ((bitField0_ & 0x00000002) == 0x00000002);
		}

		/**
		 * <code>optional bytes params = 2;</code>
		 */
		public com.google.protobuf.ByteString getParams() {
			return params_;
		}

		private void initFields() {
			name_ = "";
			params_ = com.google.protobuf.ByteString.EMPTY;
		}

		private byte memoizedIsInitialized = -1;

		public final boolean isInitialized() {
			byte isInitialized = memoizedIsInitialized;
			if (isInitialized != -1) return isInitialized == 1;

			if (!hasName()) {
				memoizedIsInitialized = 0;
				return false;
			}
			memoizedIsInitialized = 1;
			return true;
		}

		public void writeTo(
				com.google.protobuf.CodedOutputStream output )
				throws java.io.IOException {
			getSerializedSize();
			if (((bitField0_ & 0x00000001) == 0x00000001)) {
				output.writeBytes(
						1,
						getNameBytes());
			}
			if (((bitField0_ & 0x00000002) == 0x00000002)) {
				output.writeBytes(
						2,
						params_);
			}
			getUnknownFields().writeTo(
					output);
		}

		private int memoizedSerializedSize = -1;

		public int getSerializedSize() {
			int size = memoizedSerializedSize;
			if (size != -1) return size;

			size = 0;
			if (((bitField0_ & 0x00000001) == 0x00000001)) {
				size += com.google.protobuf.CodedOutputStream.computeBytesSize(
						1,
						getNameBytes());
			}
			if (((bitField0_ & 0x00000002) == 0x00000002)) {
				size += com.google.protobuf.CodedOutputStream.computeBytesSize(
						2,
						params_);
			}
			size += getUnknownFields().getSerializedSize();
			memoizedSerializedSize = size;
			return size;
		}

		private static final long serialVersionUID = 0L;

		@java.lang.Override
		protected java.lang.Object writeReplace()
				throws java.io.ObjectStreamException {
			return super.writeReplace();
		}

		@java.lang.Override
		public boolean equals(
				final java.lang.Object obj ) {
			if (obj == this) {
				return true;
			}
			if (!(obj instanceof mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType)) {
				return super.equals(obj);
			}
			mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType other = (mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType) obj;

			boolean result = true;
			result = result && (hasName() == other.hasName());
			if (hasName()) {
				result = result && getName().equals(
						other.getName());
			}
			result = result && (hasParams() == other.hasParams());
			if (hasParams()) {
				result = result && getParams().equals(
						other.getParams());
			}
			result = result && getUnknownFields().equals(
					other.getUnknownFields());
			return result;
		}

		private int memoizedHashCode = 0;

		@java.lang.Override
		public int hashCode() {
			if (memoizedHashCode != 0) {
				return memoizedHashCode;
			}
			int hash = 41;
			hash = (19 * hash) + getDescriptorForType().hashCode();
			if (hasName()) {
				hash = (37 * hash) + NAME_FIELD_NUMBER;
				hash = (53 * hash) + getName().hashCode();
			}
			if (hasParams()) {
				hash = (37 * hash) + PARAMS_FIELD_NUMBER;
				hash = (53 * hash) + getParams().hashCode();
			}
			hash = (29 * hash) + getUnknownFields().hashCode();
			memoizedHashCode = hash;
			return hash;
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType parseFrom(
				com.google.protobuf.ByteString data )
				throws com.google.protobuf.InvalidProtocolBufferException {
			return PARSER.parseFrom(data);
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType parseFrom(
				com.google.protobuf.ByteString data,
				com.google.protobuf.ExtensionRegistryLite extensionRegistry )
				throws com.google.protobuf.InvalidProtocolBufferException {
			return PARSER.parseFrom(
					data,
					extensionRegistry);
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType parseFrom(
				byte[] data )
				throws com.google.protobuf.InvalidProtocolBufferException {
			return PARSER.parseFrom(data);
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType parseFrom(
				byte[] data,
				com.google.protobuf.ExtensionRegistryLite extensionRegistry )
				throws com.google.protobuf.InvalidProtocolBufferException {
			return PARSER.parseFrom(
					data,
					extensionRegistry);
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType parseFrom(
				java.io.InputStream input )
				throws java.io.IOException {
			return PARSER.parseFrom(input);
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType parseFrom(
				java.io.InputStream input,
				com.google.protobuf.ExtensionRegistryLite extensionRegistry )
				throws java.io.IOException {
			return PARSER.parseFrom(
					input,
					extensionRegistry);
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType parseDelimitedFrom(
				java.io.InputStream input )
				throws java.io.IOException {
			return PARSER.parseDelimitedFrom(input);
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType parseDelimitedFrom(
				java.io.InputStream input,
				com.google.protobuf.ExtensionRegistryLite extensionRegistry )
				throws java.io.IOException {
			return PARSER.parseDelimitedFrom(
					input,
					extensionRegistry);
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType parseFrom(
				com.google.protobuf.CodedInputStream input )
				throws java.io.IOException {
			return PARSER.parseFrom(input);
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType parseFrom(
				com.google.protobuf.CodedInputStream input,
				com.google.protobuf.ExtensionRegistryLite extensionRegistry )
				throws java.io.IOException {
			return PARSER.parseFrom(
					input,
					extensionRegistry);
		}

		public static Builder newBuilder() {
			return Builder.create();
		}

		public Builder newBuilderForType() {
			return newBuilder();
		}

		public static Builder newBuilder(
				mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType prototype ) {
			return newBuilder().mergeFrom(
					prototype);
		}

		public Builder toBuilder() {
			return newBuilder(this);
		}

		@java.lang.Override
		protected Builder newBuilderForType(
				com.google.protobuf.GeneratedMessage.BuilderParent parent ) {
			Builder builder = new Builder(
					parent);
			return builder;
		}

		/**
		 * Protobuf type {@code AggregationType}
		 */
		public static final class Builder extends
				com.google.protobuf.GeneratedMessage.Builder<Builder> implements
				mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationTypeOrBuilder
		{
			public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
				return mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.internal_static_AggregationType_descriptor;
			}

			protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() {
				return mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.internal_static_AggregationType_fieldAccessorTable
						.ensureFieldAccessorsInitialized(
								mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType.class,
								mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType.Builder.class);
			}

			// Construct using
			// mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType.newBuilder()
			private Builder() {
				maybeForceBuilderInitialization();
			}

			private Builder(
					com.google.protobuf.GeneratedMessage.BuilderParent parent ) {
				super(
						parent);
				maybeForceBuilderInitialization();
			}

			private void maybeForceBuilderInitialization() {
				if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {}
			}

			private static Builder create() {
				return new Builder();
			}

			public Builder clear() {
				super.clear();
				name_ = "";
				bitField0_ = (bitField0_ & ~0x00000001);
				params_ = com.google.protobuf.ByteString.EMPTY;
				bitField0_ = (bitField0_ & ~0x00000002);
				return this;
			}

			public Builder clone() {
				return create().mergeFrom(
						buildPartial());
			}

			public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
				return mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.internal_static_AggregationType_descriptor;
			}

			public mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType getDefaultInstanceForType() {
				return mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType
						.getDefaultInstance();
			}

			public mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType build() {
				mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType result = buildPartial();
				if (!result.isInitialized()) {
					throw newUninitializedMessageException(result);
				}
				return result;
			}

			public mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType buildPartial() {
				mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType result = new mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType(
						this);
				int from_bitField0_ = bitField0_;
				int to_bitField0_ = 0;
				if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
					to_bitField0_ |= 0x00000001;
				}
				result.name_ = name_;
				if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
					to_bitField0_ |= 0x00000002;
				}
				result.params_ = params_;
				result.bitField0_ = to_bitField0_;
				onBuilt();
				return result;
			}

			public Builder mergeFrom(
					com.google.protobuf.Message other ) {
				if (other instanceof mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType) {
					return mergeFrom((mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType) other);
				}
				else {
					super.mergeFrom(other);
					return this;
				}
			}

			public Builder mergeFrom(
					mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType other ) {
				if (other == mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType
						.getDefaultInstance()) return this;
				if (other.hasName()) {
					bitField0_ |= 0x00000001;
					name_ = other.name_;
					onChanged();
				}
				if (other.hasParams()) {
					setParams(other.getParams());
				}
				this.mergeUnknownFields(other.getUnknownFields());
				return this;
			}

			public final boolean isInitialized() {
				if (!hasName()) {

					return false;
				}
				return true;
			}

			public Builder mergeFrom(
					com.google.protobuf.CodedInputStream input,
					com.google.protobuf.ExtensionRegistryLite extensionRegistry )
					throws java.io.IOException {
				mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType parsedMessage = null;
				try {
					parsedMessage = PARSER.parsePartialFrom(
							input,
							extensionRegistry);
				}
				catch (com.google.protobuf.InvalidProtocolBufferException e) {
					parsedMessage = (mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType) e
							.getUnfinishedMessage();
					throw e;
				}
				finally {
					if (parsedMessage != null) {
						mergeFrom(parsedMessage);
					}
				}
				return this;
			}

			private int bitField0_;

			// required string name = 1;
			private java.lang.Object name_ = "";

			/**
			 * <code>required string name = 1;</code>
			 */
			public boolean hasName() {
				return ((bitField0_ & 0x00000001) == 0x00000001);
			}

			/**
			 * <code>required string name = 1;</code>
			 */
			public java.lang.String getName() {
				java.lang.Object ref = name_;
				if (!(ref instanceof java.lang.String)) {
					java.lang.String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
					name_ = s;
					return s;
				}
				else {
					return (java.lang.String) ref;
				}
			}

			/**
			 * <code>required string name = 1;</code>
			 */
			public com.google.protobuf.ByteString getNameBytes() {
				java.lang.Object ref = name_;
				if (ref instanceof String) {
					com.google.protobuf.ByteString b = com.google.protobuf.ByteString
							.copyFromUtf8((java.lang.String) ref);
					name_ = b;
					return b;
				}
				else {
					return (com.google.protobuf.ByteString) ref;
				}
			}

			/**
			 * <code>required string name = 1;</code>
			 */
			public Builder setName(
					java.lang.String value ) {
				if (value == null) {
					throw new NullPointerException();
				}
				bitField0_ |= 0x00000001;
				name_ = value;
				onChanged();
				return this;
			}

			/**
			 * <code>required string name = 1;</code>
			 */
			public Builder clearName() {
				bitField0_ = (bitField0_ & ~0x00000001);
				name_ = getDefaultInstance().getName();
				onChanged();
				return this;
			}

			/**
			 * <code>required string name = 1;</code>
			 */
			public Builder setNameBytes(
					com.google.protobuf.ByteString value ) {
				if (value == null) {
					throw new NullPointerException();
				}
				bitField0_ |= 0x00000001;
				name_ = value;
				onChanged();
				return this;
			}

			// optional bytes params = 2;
			private com.google.protobuf.ByteString params_ = com.google.protobuf.ByteString.EMPTY;

			/**
			 * <code>optional bytes params = 2;</code>
			 */
			public boolean hasParams() {
				return ((bitField0_ & 0x00000002) == 0x00000002);
			}

			/**
			 * <code>optional bytes params = 2;</code>
			 */
			public com.google.protobuf.ByteString getParams() {
				return params_;
			}

			/**
			 * <code>optional bytes params = 2;</code>
			 */
			public Builder setParams(
					com.google.protobuf.ByteString value ) {
				if (value == null) {
					throw new NullPointerException();
				}
				bitField0_ |= 0x00000002;
				params_ = value;
				onChanged();
				return this;
			}

			/**
			 * <code>optional bytes params = 2;</code>
			 */
			public Builder clearParams() {
				bitField0_ = (bitField0_ & ~0x00000002);
				params_ = getDefaultInstance().getParams();
				onChanged();
				return this;
			}

			// @@protoc_insertion_point(builder_scope:AggregationType)
		}

		static {
			defaultInstance = new AggregationType(
					true);
			defaultInstance.initFields();
		}

		// @@protoc_insertion_point(class_scope:AggregationType)
	}

	public interface AggregationRequestOrBuilder extends
			com.google.protobuf.MessageOrBuilder
	{

		// required .AggregationType aggregation = 1;
		/**
		 * <code>required .AggregationType aggregation = 1;</code>
		 */
		boolean hasAggregation();

		/**
		 * <code>required .AggregationType aggregation = 1;</code>
		 */
		mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType getAggregation();

		/**
		 * <code>required .AggregationType aggregation = 1;</code>
		 */
		mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationTypeOrBuilder getAggregationOrBuilder();

		// optional bytes rangeFilter = 2;
		/**
		 * <code>optional bytes rangeFilter = 2;</code>
		 */
		boolean hasRangeFilter();

		/**
		 * <code>optional bytes rangeFilter = 2;</code>
		 */
		com.google.protobuf.ByteString getRangeFilter();

		// optional bytes filter = 3;
		/**
		 * <code>optional bytes filter = 3;</code>
		 */
		boolean hasFilter();

		/**
		 * <code>optional bytes filter = 3;</code>
		 */
		com.google.protobuf.ByteString getFilter();

		// optional bytes model = 4;
		/**
		 * <code>optional bytes model = 4;</code>
		 */
		boolean hasModel();

		/**
		 * <code>optional bytes model = 4;</code>
		 */
		com.google.protobuf.ByteString getModel();

		// optional bytes adapter = 5;
		/**
		 * <code>optional bytes adapter = 5;</code>
		 */
		boolean hasAdapter();

		/**
		 * <code>optional bytes adapter = 5;</code>
		 */
		com.google.protobuf.ByteString getAdapter();

		// optional bool blockCaching = 6;
		/**
		 * <code>optional bool blockCaching = 6;</code>
		 */
		boolean hasBlockCaching();

		/**
		 * <code>optional bool blockCaching = 6;</code>
		 */
		boolean getBlockCaching();

		// optional int32 cacheSize = 7;
		/**
		 * <code>optional int32 cacheSize = 7;</code>
		 */
		boolean hasCacheSize();

		/**
		 * <code>optional int32 cacheSize = 7;</code>
		 */
		int getCacheSize();
	}

	/**
	 * Protobuf type {@code AggregationRequest}
	 */
	public static final class AggregationRequest extends
			com.google.protobuf.GeneratedMessage implements
			AggregationRequestOrBuilder
	{
		// Use AggregationRequest.newBuilder() to construct.
		private AggregationRequest(
				com.google.protobuf.GeneratedMessage.Builder<?> builder ) {
			super(
					builder);
			this.unknownFields = builder.getUnknownFields();
		}

		private AggregationRequest(
				boolean noInit ) {
			this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance();
		}

		private static final AggregationRequest defaultInstance;

		public static AggregationRequest getDefaultInstance() {
			return defaultInstance;
		}

		public AggregationRequest getDefaultInstanceForType() {
			return defaultInstance;
		}

		private final com.google.protobuf.UnknownFieldSet unknownFields;

		@java.lang.Override
		public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
			return this.unknownFields;
		}

		private AggregationRequest(
				com.google.protobuf.CodedInputStream input,
				com.google.protobuf.ExtensionRegistryLite extensionRegistry )
				throws com.google.protobuf.InvalidProtocolBufferException {
			initFields();
			int mutable_bitField0_ = 0;
			com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet
					.newBuilder();
			try {
				boolean done = false;
				while (!done) {
					int tag = input.readTag();
					switch (tag) {
						case 0:
							done = true;
							break;
						default: {
							if (!parseUnknownField(
									input,
									unknownFields,
									extensionRegistry,
									tag)) {
								done = true;
							}
							break;
						}
						case 10: {
							mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType.Builder subBuilder = null;
							if (((bitField0_ & 0x00000001) == 0x00000001)) {
								subBuilder = aggregation_.toBuilder();
							}
							aggregation_ = input
									.readMessage(
											mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType.PARSER,
											extensionRegistry);
							if (subBuilder != null) {
								subBuilder.mergeFrom(aggregation_);
								aggregation_ = subBuilder.buildPartial();
							}
							bitField0_ |= 0x00000001;
							break;
						}
						case 18: {
							bitField0_ |= 0x00000002;
							rangeFilter_ = input.readBytes();
							break;
						}
						case 26: {
							bitField0_ |= 0x00000004;
							filter_ = input.readBytes();
							break;
						}
						case 34: {
							bitField0_ |= 0x00000008;
							model_ = input.readBytes();
							break;
						}
						case 42: {
							bitField0_ |= 0x00000010;
							adapter_ = input.readBytes();
							break;
						}
						case 48: {
							bitField0_ |= 0x00000020;
							blockCaching_ = input.readBool();
							break;
						}
						case 56: {
							bitField0_ |= 0x00000040;
							cacheSize_ = input.readInt32();
							break;
						}
					}
				}
			}
			catch (com.google.protobuf.InvalidProtocolBufferException e) {
				throw e.setUnfinishedMessage(this);
			}
			catch (java.io.IOException e) {
				throw new com.google.protobuf.InvalidProtocolBufferException(
						e.getMessage()).setUnfinishedMessage(this);
			}
			finally {
				this.unknownFields = unknownFields.build();
				makeExtensionsImmutable();
			}
		}

		public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
			return mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.internal_static_AggregationRequest_descriptor;
		}

		protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() {
			return mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.internal_static_AggregationRequest_fieldAccessorTable
					.ensureFieldAccessorsInitialized(
							mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest.class,
							mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest.Builder.class);
		}

		public static com.google.protobuf.Parser<AggregationRequest> PARSER = new com.google.protobuf.AbstractParser<AggregationRequest>() {
			public AggregationRequest parsePartialFrom(
					com.google.protobuf.CodedInputStream input,
					com.google.protobuf.ExtensionRegistryLite extensionRegistry )
					throws com.google.protobuf.InvalidProtocolBufferException {
				return new AggregationRequest(
						input,
						extensionRegistry);
			}
		};

		@java.lang.Override
		public com.google.protobuf.Parser<AggregationRequest> getParserForType() {
			return PARSER;
		}

		private int bitField0_;
		// required .AggregationType aggregation = 1;
		public static final int AGGREGATION_FIELD_NUMBER = 1;
		private mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType aggregation_;

		/**
		 * <code>required .AggregationType aggregation = 1;</code>
		 */
		public boolean hasAggregation() {
			return ((bitField0_ & 0x00000001) == 0x00000001);
		}

		/**
		 * <code>required .AggregationType aggregation = 1;</code>
		 */
		public mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType getAggregation() {
			return aggregation_;
		}

		/**
		 * <code>required .AggregationType aggregation = 1;</code>
		 */
		public mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationTypeOrBuilder getAggregationOrBuilder() {
			return aggregation_;
		}

		// optional bytes rangeFilter = 2;
		public static final int RANGEFILTER_FIELD_NUMBER = 2;
		private com.google.protobuf.ByteString rangeFilter_;

		/**
		 * <code>optional bytes rangeFilter = 2;</code>
		 */
		public boolean hasRangeFilter() {
			return ((bitField0_ & 0x00000002) == 0x00000002);
		}

		/**
		 * <code>optional bytes rangeFilter = 2;</code>
		 */
		public com.google.protobuf.ByteString getRangeFilter() {
			return rangeFilter_;
		}

		// optional bytes filter = 3;
		public static final int FILTER_FIELD_NUMBER = 3;
		private com.google.protobuf.ByteString filter_;

		/**
		 * <code>optional bytes filter = 3;</code>
		 */
		public boolean hasFilter() {
			return ((bitField0_ & 0x00000004) == 0x00000004);
		}

		/**
		 * <code>optional bytes filter = 3;</code>
		 */
		public com.google.protobuf.ByteString getFilter() {
			return filter_;
		}

		// optional bytes model = 4;
		public static final int MODEL_FIELD_NUMBER = 4;
		private com.google.protobuf.ByteString model_;

		/**
		 * <code>optional bytes model = 4;</code>
		 */
		public boolean hasModel() {
			return ((bitField0_ & 0x00000008) == 0x00000008);
		}

		/**
		 * <code>optional bytes model = 4;</code>
		 */
		public com.google.protobuf.ByteString getModel() {
			return model_;
		}

		// optional bytes adapter = 5;
		public static final int ADAPTER_FIELD_NUMBER = 5;
		private com.google.protobuf.ByteString adapter_;

		/**
		 * <code>optional bytes adapter = 5;</code>
		 */
		public boolean hasAdapter() {
			return ((bitField0_ & 0x00000010) == 0x00000010);
		}

		/**
		 * <code>optional bytes adapter = 5;</code>
		 */
		public com.google.protobuf.ByteString getAdapter() {
			return adapter_;
		}

		// optional bool blockCaching = 6;
		public static final int BLOCKCACHING_FIELD_NUMBER = 6;
		private boolean blockCaching_;

		/**
		 * <code>optional bool blockCaching = 6;</code>
		 */
		public boolean hasBlockCaching() {
			return ((bitField0_ & 0x00000020) == 0x00000020);
		}

		/**
		 * <code>optional bool blockCaching = 6;</code>
		 */
		public boolean getBlockCaching() {
			return blockCaching_;
		}

		// optional int32 cacheSize = 7;
		public static final int CACHESIZE_FIELD_NUMBER = 7;
		private int cacheSize_;

		/**
		 * <code>optional int32 cacheSize = 7;</code>
		 */
		public boolean hasCacheSize() {
			return ((bitField0_ & 0x00000040) == 0x00000040);
		}

		/**
		 * <code>optional int32 cacheSize = 7;</code>
		 */
		public int getCacheSize() {
			return cacheSize_;
		}

		private void initFields() {
			aggregation_ = mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType
					.getDefaultInstance();
			rangeFilter_ = com.google.protobuf.ByteString.EMPTY;
			filter_ = com.google.protobuf.ByteString.EMPTY;
			model_ = com.google.protobuf.ByteString.EMPTY;
			adapter_ = com.google.protobuf.ByteString.EMPTY;
			blockCaching_ = false;
			cacheSize_ = 0;
		}

		private byte memoizedIsInitialized = -1;

		public final boolean isInitialized() {
			byte isInitialized = memoizedIsInitialized;
			if (isInitialized != -1) return isInitialized == 1;

			if (!hasAggregation()) {
				memoizedIsInitialized = 0;
				return false;
			}
			if (!getAggregation().isInitialized()) {
				memoizedIsInitialized = 0;
				return false;
			}
			memoizedIsInitialized = 1;
			return true;
		}

		public void writeTo(
				com.google.protobuf.CodedOutputStream output )
				throws java.io.IOException {
			getSerializedSize();
			if (((bitField0_ & 0x00000001) == 0x00000001)) {
				output.writeMessage(
						1,
						aggregation_);
			}
			if (((bitField0_ & 0x00000002) == 0x00000002)) {
				output.writeBytes(
						2,
						rangeFilter_);
			}
			if (((bitField0_ & 0x00000004) == 0x00000004)) {
				output.writeBytes(
						3,
						filter_);
			}
			if (((bitField0_ & 0x00000008) == 0x00000008)) {
				output.writeBytes(
						4,
						model_);
			}
			if (((bitField0_ & 0x00000010) == 0x00000010)) {
				output.writeBytes(
						5,
						adapter_);
			}
			if (((bitField0_ & 0x00000020) == 0x00000020)) {
				output.writeBool(
						6,
						blockCaching_);
			}
			if (((bitField0_ & 0x00000040) == 0x00000040)) {
				output.writeInt32(
						7,
						cacheSize_);
			}
			getUnknownFields().writeTo(
					output);
		}

		private int memoizedSerializedSize = -1;

		public int getSerializedSize() {
			int size = memoizedSerializedSize;
			if (size != -1) return size;

			size = 0;
			if (((bitField0_ & 0x00000001) == 0x00000001)) {
				size += com.google.protobuf.CodedOutputStream.computeMessageSize(
						1,
						aggregation_);
			}
			if (((bitField0_ & 0x00000002) == 0x00000002)) {
				size += com.google.protobuf.CodedOutputStream.computeBytesSize(
						2,
						rangeFilter_);
			}
			if (((bitField0_ & 0x00000004) == 0x00000004)) {
				size += com.google.protobuf.CodedOutputStream.computeBytesSize(
						3,
						filter_);
			}
			if (((bitField0_ & 0x00000008) == 0x00000008)) {
				size += com.google.protobuf.CodedOutputStream.computeBytesSize(
						4,
						model_);
			}
			if (((bitField0_ & 0x00000010) == 0x00000010)) {
				size += com.google.protobuf.CodedOutputStream.computeBytesSize(
						5,
						adapter_);
			}
			if (((bitField0_ & 0x00000020) == 0x00000020)) {
				size += com.google.protobuf.CodedOutputStream.computeBoolSize(
						6,
						blockCaching_);
			}
			if (((bitField0_ & 0x00000040) == 0x00000040)) {
				size += com.google.protobuf.CodedOutputStream.computeInt32Size(
						7,
						cacheSize_);
			}
			size += getUnknownFields().getSerializedSize();
			memoizedSerializedSize = size;
			return size;
		}

		private static final long serialVersionUID = 0L;

		@java.lang.Override
		protected java.lang.Object writeReplace()
				throws java.io.ObjectStreamException {
			return super.writeReplace();
		}

		@java.lang.Override
		public boolean equals(
				final java.lang.Object obj ) {
			if (obj == this) {
				return true;
			}
			if (!(obj instanceof mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest)) {
				return super.equals(obj);
			}
			mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest other = (mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest) obj;

			boolean result = true;
			result = result && (hasAggregation() == other.hasAggregation());
			if (hasAggregation()) {
				result = result && getAggregation().equals(
						other.getAggregation());
			}
			result = result && (hasRangeFilter() == other.hasRangeFilter());
			if (hasRangeFilter()) {
				result = result && getRangeFilter().equals(
						other.getRangeFilter());
			}
			result = result && (hasFilter() == other.hasFilter());
			if (hasFilter()) {
				result = result && getFilter().equals(
						other.getFilter());
			}
			result = result && (hasModel() == other.hasModel());
			if (hasModel()) {
				result = result && getModel().equals(
						other.getModel());
			}
			result = result && (hasAdapter() == other.hasAdapter());
			if (hasAdapter()) {
				result = result && getAdapter().equals(
						other.getAdapter());
			}
			result = result && (hasBlockCaching() == other.hasBlockCaching());
			if (hasBlockCaching()) {
				result = result && (getBlockCaching() == other.getBlockCaching());
			}
			result = result && (hasCacheSize() == other.hasCacheSize());
			if (hasCacheSize()) {
				result = result && (getCacheSize() == other.getCacheSize());
			}
			result = result && getUnknownFields().equals(
					other.getUnknownFields());
			return result;
		}

		private int memoizedHashCode = 0;

		@java.lang.Override
		public int hashCode() {
			if (memoizedHashCode != 0) {
				return memoizedHashCode;
			}
			int hash = 41;
			hash = (19 * hash) + getDescriptorForType().hashCode();
			if (hasAggregation()) {
				hash = (37 * hash) + AGGREGATION_FIELD_NUMBER;
				hash = (53 * hash) + getAggregation().hashCode();
			}
			if (hasRangeFilter()) {
				hash = (37 * hash) + RANGEFILTER_FIELD_NUMBER;
				hash = (53 * hash) + getRangeFilter().hashCode();
			}
			if (hasFilter()) {
				hash = (37 * hash) + FILTER_FIELD_NUMBER;
				hash = (53 * hash) + getFilter().hashCode();
			}
			if (hasModel()) {
				hash = (37 * hash) + MODEL_FIELD_NUMBER;
				hash = (53 * hash) + getModel().hashCode();
			}
			if (hasAdapter()) {
				hash = (37 * hash) + ADAPTER_FIELD_NUMBER;
				hash = (53 * hash) + getAdapter().hashCode();
			}
			if (hasBlockCaching()) {
				hash = (37 * hash) + BLOCKCACHING_FIELD_NUMBER;
				hash = (53 * hash) + hashBoolean(getBlockCaching());
			}
			if (hasCacheSize()) {
				hash = (37 * hash) + CACHESIZE_FIELD_NUMBER;
				hash = (53 * hash) + getCacheSize();
			}
			hash = (29 * hash) + getUnknownFields().hashCode();
			memoizedHashCode = hash;
			return hash;
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest parseFrom(
				com.google.protobuf.ByteString data )
				throws com.google.protobuf.InvalidProtocolBufferException {
			return PARSER.parseFrom(data);
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest parseFrom(
				com.google.protobuf.ByteString data,
				com.google.protobuf.ExtensionRegistryLite extensionRegistry )
				throws com.google.protobuf.InvalidProtocolBufferException {
			return PARSER.parseFrom(
					data,
					extensionRegistry);
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest parseFrom(
				byte[] data )
				throws com.google.protobuf.InvalidProtocolBufferException {
			return PARSER.parseFrom(data);
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest parseFrom(
				byte[] data,
				com.google.protobuf.ExtensionRegistryLite extensionRegistry )
				throws com.google.protobuf.InvalidProtocolBufferException {
			return PARSER.parseFrom(
					data,
					extensionRegistry);
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest parseFrom(
				java.io.InputStream input )
				throws java.io.IOException {
			return PARSER.parseFrom(input);
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest parseFrom(
				java.io.InputStream input,
				com.google.protobuf.ExtensionRegistryLite extensionRegistry )
				throws java.io.IOException {
			return PARSER.parseFrom(
					input,
					extensionRegistry);
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest parseDelimitedFrom(
				java.io.InputStream input )
				throws java.io.IOException {
			return PARSER.parseDelimitedFrom(input);
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest parseDelimitedFrom(
				java.io.InputStream input,
				com.google.protobuf.ExtensionRegistryLite extensionRegistry )
				throws java.io.IOException {
			return PARSER.parseDelimitedFrom(
					input,
					extensionRegistry);
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest parseFrom(
				com.google.protobuf.CodedInputStream input )
				throws java.io.IOException {
			return PARSER.parseFrom(input);
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest parseFrom(
				com.google.protobuf.CodedInputStream input,
				com.google.protobuf.ExtensionRegistryLite extensionRegistry )
				throws java.io.IOException {
			return PARSER.parseFrom(
					input,
					extensionRegistry);
		}

		public static Builder newBuilder() {
			return Builder.create();
		}

		public Builder newBuilderForType() {
			return newBuilder();
		}

		public static Builder newBuilder(
				mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest prototype ) {
			return newBuilder().mergeFrom(
					prototype);
		}

		public Builder toBuilder() {
			return newBuilder(this);
		}

		@java.lang.Override
		protected Builder newBuilderForType(
				com.google.protobuf.GeneratedMessage.BuilderParent parent ) {
			Builder builder = new Builder(
					parent);
			return builder;
		}

		/**
		 * Protobuf type {@code AggregationRequest}
		 */
		public static final class Builder extends
				com.google.protobuf.GeneratedMessage.Builder<Builder> implements
				mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequestOrBuilder
		{
			public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
				return mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.internal_static_AggregationRequest_descriptor;
			}

			protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() {
				return mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.internal_static_AggregationRequest_fieldAccessorTable
						.ensureFieldAccessorsInitialized(
								mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest.class,
								mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest.Builder.class);
			}

			// Construct using
			// mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest.newBuilder()
			private Builder() {
				maybeForceBuilderInitialization();
			}

			private Builder(
					com.google.protobuf.GeneratedMessage.BuilderParent parent ) {
				super(
						parent);
				maybeForceBuilderInitialization();
			}

			private void maybeForceBuilderInitialization() {
				if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
					getAggregationFieldBuilder();
				}
			}

			private static Builder create() {
				return new Builder();
			}

			public Builder clear() {
				super.clear();
				if (aggregationBuilder_ == null) {
					aggregation_ = mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType
							.getDefaultInstance();
				}
				else {
					aggregationBuilder_.clear();
				}
				bitField0_ = (bitField0_ & ~0x00000001);
				rangeFilter_ = com.google.protobuf.ByteString.EMPTY;
				bitField0_ = (bitField0_ & ~0x00000002);
				filter_ = com.google.protobuf.ByteString.EMPTY;
				bitField0_ = (bitField0_ & ~0x00000004);
				model_ = com.google.protobuf.ByteString.EMPTY;
				bitField0_ = (bitField0_ & ~0x00000008);
				adapter_ = com.google.protobuf.ByteString.EMPTY;
				bitField0_ = (bitField0_ & ~0x00000010);
				blockCaching_ = false;
				bitField0_ = (bitField0_ & ~0x00000020);
				cacheSize_ = 0;
				bitField0_ = (bitField0_ & ~0x00000040);
				return this;
			}

			public Builder clone() {
				return create().mergeFrom(
						buildPartial());
			}

			public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
				return mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.internal_static_AggregationRequest_descriptor;
			}

			public mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest getDefaultInstanceForType() {
				return mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest
						.getDefaultInstance();
			}

			public mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest build() {
				mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest result = buildPartial();
				if (!result.isInitialized()) {
					throw newUninitializedMessageException(result);
				}
				return result;
			}

			public mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest buildPartial() {
				mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest result = new mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest(
						this);
				int from_bitField0_ = bitField0_;
				int to_bitField0_ = 0;
				if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
					to_bitField0_ |= 0x00000001;
				}
				if (aggregationBuilder_ == null) {
					result.aggregation_ = aggregation_;
				}
				else {
					result.aggregation_ = aggregationBuilder_.build();
				}
				if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
					to_bitField0_ |= 0x00000002;
				}
				result.rangeFilter_ = rangeFilter_;
				if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
					to_bitField0_ |= 0x00000004;
				}
				result.filter_ = filter_;
				if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
					to_bitField0_ |= 0x00000008;
				}
				result.model_ = model_;
				if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
					to_bitField0_ |= 0x00000010;
				}
				result.adapter_ = adapter_;
				if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
					to_bitField0_ |= 0x00000020;
				}
				result.blockCaching_ = blockCaching_;
				if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
					to_bitField0_ |= 0x00000040;
				}
				result.cacheSize_ = cacheSize_;
				result.bitField0_ = to_bitField0_;
				onBuilt();
				return result;
			}

			public Builder mergeFrom(
					com.google.protobuf.Message other ) {
				if (other instanceof mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest) {
					return mergeFrom((mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest) other);
				}
				else {
					super.mergeFrom(other);
					return this;
				}
			}

			public Builder mergeFrom(
					mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest other ) {
				if (other == mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest
						.getDefaultInstance()) return this;
				if (other.hasAggregation()) {
					mergeAggregation(other.getAggregation());
				}
				if (other.hasRangeFilter()) {
					setRangeFilter(other.getRangeFilter());
				}
				if (other.hasFilter()) {
					setFilter(other.getFilter());
				}
				if (other.hasModel()) {
					setModel(other.getModel());
				}
				if (other.hasAdapter()) {
					setAdapter(other.getAdapter());
				}
				if (other.hasBlockCaching()) {
					setBlockCaching(other.getBlockCaching());
				}
				if (other.hasCacheSize()) {
					setCacheSize(other.getCacheSize());
				}
				this.mergeUnknownFields(other.getUnknownFields());
				return this;
			}

			public final boolean isInitialized() {
				if (!hasAggregation()) {

					return false;
				}
				if (!getAggregation().isInitialized()) {

					return false;
				}
				return true;
			}

			public Builder mergeFrom(
					com.google.protobuf.CodedInputStream input,
					com.google.protobuf.ExtensionRegistryLite extensionRegistry )
					throws java.io.IOException {
				mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest parsedMessage = null;
				try {
					parsedMessage = PARSER.parsePartialFrom(
							input,
							extensionRegistry);
				}
				catch (com.google.protobuf.InvalidProtocolBufferException e) {
					parsedMessage = (mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest) e
							.getUnfinishedMessage();
					throw e;
				}
				finally {
					if (parsedMessage != null) {
						mergeFrom(parsedMessage);
					}
				}
				return this;
			}

			private int bitField0_;

			// required .AggregationType aggregation = 1;
			private mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType aggregation_ = mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType
					.getDefaultInstance();
			private com.google.protobuf.SingleFieldBuilder<mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType, mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType.Builder, mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationTypeOrBuilder> aggregationBuilder_;

			/**
			 * <code>required .AggregationType aggregation = 1;</code>
			 */
			public boolean hasAggregation() {
				return ((bitField0_ & 0x00000001) == 0x00000001);
			}

			/**
			 * <code>required .AggregationType aggregation = 1;</code>
			 */
			public mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType getAggregation() {
				if (aggregationBuilder_ == null) {
					return aggregation_;
				}
				else {
					return aggregationBuilder_.getMessage();
				}
			}

			/**
			 * <code>required .AggregationType aggregation = 1;</code>
			 */
			public Builder setAggregation(
					mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType value ) {
				if (aggregationBuilder_ == null) {
					if (value == null) {
						throw new NullPointerException();
					}
					aggregation_ = value;
					onChanged();
				}
				else {
					aggregationBuilder_.setMessage(value);
				}
				bitField0_ |= 0x00000001;
				return this;
			}

			/**
			 * <code>required .AggregationType aggregation = 1;</code>
			 */
			public Builder setAggregation(
					mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType.Builder builderForValue ) {
				if (aggregationBuilder_ == null) {
					aggregation_ = builderForValue.build();
					onChanged();
				}
				else {
					aggregationBuilder_.setMessage(builderForValue.build());
				}
				bitField0_ |= 0x00000001;
				return this;
			}

			/**
			 * <code>required .AggregationType aggregation = 1;</code>
			 */
			public Builder mergeAggregation(
					mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType value ) {
				if (aggregationBuilder_ == null) {
					if (((bitField0_ & 0x00000001) == 0x00000001)
							&& aggregation_ != mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType
									.getDefaultInstance()) {
						aggregation_ = mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType
								.newBuilder(
										aggregation_)
								.mergeFrom(
										value)
								.buildPartial();
					}
					else {
						aggregation_ = value;
					}
					onChanged();
				}
				else {
					aggregationBuilder_.mergeFrom(value);
				}
				bitField0_ |= 0x00000001;
				return this;
			}

			/**
			 * <code>required .AggregationType aggregation = 1;</code>
			 */
			public Builder clearAggregation() {
				if (aggregationBuilder_ == null) {
					aggregation_ = mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType
							.getDefaultInstance();
					onChanged();
				}
				else {
					aggregationBuilder_.clear();
				}
				bitField0_ = (bitField0_ & ~0x00000001);
				return this;
			}

			/**
			 * <code>required .AggregationType aggregation = 1;</code>
			 */
			public mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType.Builder getAggregationBuilder() {
				bitField0_ |= 0x00000001;
				onChanged();
				return getAggregationFieldBuilder().getBuilder();
			}

			/**
			 * <code>required .AggregationType aggregation = 1;</code>
			 */
			public mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationTypeOrBuilder getAggregationOrBuilder() {
				if (aggregationBuilder_ != null) {
					return aggregationBuilder_.getMessageOrBuilder();
				}
				else {
					return aggregation_;
				}
			}

			/**
			 * <code>required .AggregationType aggregation = 1;</code>
			 */
			private com.google.protobuf.SingleFieldBuilder<mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType, mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType.Builder, mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationTypeOrBuilder> getAggregationFieldBuilder() {
				if (aggregationBuilder_ == null) {
					aggregationBuilder_ = new com.google.protobuf.SingleFieldBuilder<mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType, mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationType.Builder, mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationTypeOrBuilder>(
							aggregation_,
							getParentForChildren(),
							isClean());
					aggregation_ = null;
				}
				return aggregationBuilder_;
			}

			// optional bytes rangeFilter = 2;
			private com.google.protobuf.ByteString rangeFilter_ = com.google.protobuf.ByteString.EMPTY;

			/**
			 * <code>optional bytes rangeFilter = 2;</code>
			 */
			public boolean hasRangeFilter() {
				return ((bitField0_ & 0x00000002) == 0x00000002);
			}

			/**
			 * <code>optional bytes rangeFilter = 2;</code>
			 */
			public com.google.protobuf.ByteString getRangeFilter() {
				return rangeFilter_;
			}

			/**
			 * <code>optional bytes rangeFilter = 2;</code>
			 */
			public Builder setRangeFilter(
					com.google.protobuf.ByteString value ) {
				if (value == null) {
					throw new NullPointerException();
				}
				bitField0_ |= 0x00000002;
				rangeFilter_ = value;
				onChanged();
				return this;
			}

			/**
			 * <code>optional bytes rangeFilter = 2;</code>
			 */
			public Builder clearRangeFilter() {
				bitField0_ = (bitField0_ & ~0x00000002);
				rangeFilter_ = getDefaultInstance().getRangeFilter();
				onChanged();
				return this;
			}

			// optional bytes filter = 3;
			private com.google.protobuf.ByteString filter_ = com.google.protobuf.ByteString.EMPTY;

			/**
			 * <code>optional bytes filter = 3;</code>
			 */
			public boolean hasFilter() {
				return ((bitField0_ & 0x00000004) == 0x00000004);
			}

			/**
			 * <code>optional bytes filter = 3;</code>
			 */
			public com.google.protobuf.ByteString getFilter() {
				return filter_;
			}

			/**
			 * <code>optional bytes filter = 3;</code>
			 */
			public Builder setFilter(
					com.google.protobuf.ByteString value ) {
				if (value == null) {
					throw new NullPointerException();
				}
				bitField0_ |= 0x00000004;
				filter_ = value;
				onChanged();
				return this;
			}

			/**
			 * <code>optional bytes filter = 3;</code>
			 */
			public Builder clearFilter() {
				bitField0_ = (bitField0_ & ~0x00000004);
				filter_ = getDefaultInstance().getFilter();
				onChanged();
				return this;
			}

			// optional bytes model = 4;
			private com.google.protobuf.ByteString model_ = com.google.protobuf.ByteString.EMPTY;

			/**
			 * <code>optional bytes model = 4;</code>
			 */
			public boolean hasModel() {
				return ((bitField0_ & 0x00000008) == 0x00000008);
			}

			/**
			 * <code>optional bytes model = 4;</code>
			 */
			public com.google.protobuf.ByteString getModel() {
				return model_;
			}

			/**
			 * <code>optional bytes model = 4;</code>
			 */
			public Builder setModel(
					com.google.protobuf.ByteString value ) {
				if (value == null) {
					throw new NullPointerException();
				}
				bitField0_ |= 0x00000008;
				model_ = value;
				onChanged();
				return this;
			}

			/**
			 * <code>optional bytes model = 4;</code>
			 */
			public Builder clearModel() {
				bitField0_ = (bitField0_ & ~0x00000008);
				model_ = getDefaultInstance().getModel();
				onChanged();
				return this;
			}

			// optional bytes adapter = 5;
			private com.google.protobuf.ByteString adapter_ = com.google.protobuf.ByteString.EMPTY;

			/**
			 * <code>optional bytes adapter = 5;</code>
			 */
			public boolean hasAdapter() {
				return ((bitField0_ & 0x00000010) == 0x00000010);
			}

			/**
			 * <code>optional bytes adapter = 5;</code>
			 */
			public com.google.protobuf.ByteString getAdapter() {
				return adapter_;
			}

			/**
			 * <code>optional bytes adapter = 5;</code>
			 */
			public Builder setAdapter(
					com.google.protobuf.ByteString value ) {
				if (value == null) {
					throw new NullPointerException();
				}
				bitField0_ |= 0x00000010;
				adapter_ = value;
				onChanged();
				return this;
			}

			/**
			 * <code>optional bytes adapter = 5;</code>
			 */
			public Builder clearAdapter() {
				bitField0_ = (bitField0_ & ~0x00000010);
				adapter_ = getDefaultInstance().getAdapter();
				onChanged();
				return this;
			}

			// optional bool blockCaching = 6;
			private boolean blockCaching_;

			/**
			 * <code>optional bool blockCaching = 6;</code>
			 */
			public boolean hasBlockCaching() {
				return ((bitField0_ & 0x00000020) == 0x00000020);
			}

			/**
			 * <code>optional bool blockCaching = 6;</code>
			 */
			public boolean getBlockCaching() {
				return blockCaching_;
			}

			/**
			 * <code>optional bool blockCaching = 6;</code>
			 */
			public Builder setBlockCaching(
					boolean value ) {
				bitField0_ |= 0x00000020;
				blockCaching_ = value;
				onChanged();
				return this;
			}

			/**
			 * <code>optional bool blockCaching = 6;</code>
			 */
			public Builder clearBlockCaching() {
				bitField0_ = (bitField0_ & ~0x00000020);
				blockCaching_ = false;
				onChanged();
				return this;
			}

			// optional int32 cacheSize = 7;
			private int cacheSize_;

			/**
			 * <code>optional int32 cacheSize = 7;</code>
			 */
			public boolean hasCacheSize() {
				return ((bitField0_ & 0x00000040) == 0x00000040);
			}

			/**
			 * <code>optional int32 cacheSize = 7;</code>
			 */
			public int getCacheSize() {
				return cacheSize_;
			}

			/**
			 * <code>optional int32 cacheSize = 7;</code>
			 */
			public Builder setCacheSize(
					int value ) {
				bitField0_ |= 0x00000040;
				cacheSize_ = value;
				onChanged();
				return this;
			}

			/**
			 * <code>optional int32 cacheSize = 7;</code>
			 */
			public Builder clearCacheSize() {
				bitField0_ = (bitField0_ & ~0x00000040);
				cacheSize_ = 0;
				onChanged();
				return this;
			}

			// @@protoc_insertion_point(builder_scope:AggregationRequest)
		}

		static {
			defaultInstance = new AggregationRequest(
					true);
			defaultInstance.initFields();
		}

		// @@protoc_insertion_point(class_scope:AggregationRequest)
	}

	public interface AggregationResponseOrBuilder extends
			com.google.protobuf.MessageOrBuilder
	{

		// required bytes value = 1;
		/**
		 * <code>required bytes value = 1;</code>
		 */
		boolean hasValue();

		/**
		 * <code>required bytes value = 1;</code>
		 */
		com.google.protobuf.ByteString getValue();
	}

	/**
	 * Protobuf type {@code AggregationResponse}
	 */
	public static final class AggregationResponse extends
			com.google.protobuf.GeneratedMessage implements
			AggregationResponseOrBuilder
	{
		// Use AggregationResponse.newBuilder() to construct.
		private AggregationResponse(
				com.google.protobuf.GeneratedMessage.Builder<?> builder ) {
			super(
					builder);
			this.unknownFields = builder.getUnknownFields();
		}

		private AggregationResponse(
				boolean noInit ) {
			this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance();
		}

		private static final AggregationResponse defaultInstance;

		public static AggregationResponse getDefaultInstance() {
			return defaultInstance;
		}

		public AggregationResponse getDefaultInstanceForType() {
			return defaultInstance;
		}

		private final com.google.protobuf.UnknownFieldSet unknownFields;

		@java.lang.Override
		public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
			return this.unknownFields;
		}

		private AggregationResponse(
				com.google.protobuf.CodedInputStream input,
				com.google.protobuf.ExtensionRegistryLite extensionRegistry )
				throws com.google.protobuf.InvalidProtocolBufferException {
			initFields();
			int mutable_bitField0_ = 0;
			com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet
					.newBuilder();
			try {
				boolean done = false;
				while (!done) {
					int tag = input.readTag();
					switch (tag) {
						case 0:
							done = true;
							break;
						default: {
							if (!parseUnknownField(
									input,
									unknownFields,
									extensionRegistry,
									tag)) {
								done = true;
							}
							break;
						}
						case 10: {
							bitField0_ |= 0x00000001;
							value_ = input.readBytes();
							break;
						}
					}
				}
			}
			catch (com.google.protobuf.InvalidProtocolBufferException e) {
				throw e.setUnfinishedMessage(this);
			}
			catch (java.io.IOException e) {
				throw new com.google.protobuf.InvalidProtocolBufferException(
						e.getMessage()).setUnfinishedMessage(this);
			}
			finally {
				this.unknownFields = unknownFields.build();
				makeExtensionsImmutable();
			}
		}

		public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
			return mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.internal_static_AggregationResponse_descriptor;
		}

		protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() {
			return mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.internal_static_AggregationResponse_fieldAccessorTable
					.ensureFieldAccessorsInitialized(
							mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse.class,
							mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse.Builder.class);
		}

		public static com.google.protobuf.Parser<AggregationResponse> PARSER = new com.google.protobuf.AbstractParser<AggregationResponse>() {
			public AggregationResponse parsePartialFrom(
					com.google.protobuf.CodedInputStream input,
					com.google.protobuf.ExtensionRegistryLite extensionRegistry )
					throws com.google.protobuf.InvalidProtocolBufferException {
				return new AggregationResponse(
						input,
						extensionRegistry);
			}
		};

		@java.lang.Override
		public com.google.protobuf.Parser<AggregationResponse> getParserForType() {
			return PARSER;
		}

		private int bitField0_;
		// required bytes value = 1;
		public static final int VALUE_FIELD_NUMBER = 1;
		private com.google.protobuf.ByteString value_;

		/**
		 * <code>required bytes value = 1;</code>
		 */
		public boolean hasValue() {
			return ((bitField0_ & 0x00000001) == 0x00000001);
		}

		/**
		 * <code>required bytes value = 1;</code>
		 */
		public com.google.protobuf.ByteString getValue() {
			return value_;
		}

		private void initFields() {
			value_ = com.google.protobuf.ByteString.EMPTY;
		}

		private byte memoizedIsInitialized = -1;

		public final boolean isInitialized() {
			byte isInitialized = memoizedIsInitialized;
			if (isInitialized != -1) return isInitialized == 1;

			if (!hasValue()) {
				memoizedIsInitialized = 0;
				return false;
			}
			memoizedIsInitialized = 1;
			return true;
		}

		public void writeTo(
				com.google.protobuf.CodedOutputStream output )
				throws java.io.IOException {
			getSerializedSize();
			if (((bitField0_ & 0x00000001) == 0x00000001)) {
				output.writeBytes(
						1,
						value_);
			}
			getUnknownFields().writeTo(
					output);
		}

		private int memoizedSerializedSize = -1;

		public int getSerializedSize() {
			int size = memoizedSerializedSize;
			if (size != -1) return size;

			size = 0;
			if (((bitField0_ & 0x00000001) == 0x00000001)) {
				size += com.google.protobuf.CodedOutputStream.computeBytesSize(
						1,
						value_);
			}
			size += getUnknownFields().getSerializedSize();
			memoizedSerializedSize = size;
			return size;
		}

		private static final long serialVersionUID = 0L;

		@java.lang.Override
		protected java.lang.Object writeReplace()
				throws java.io.ObjectStreamException {
			return super.writeReplace();
		}

		@java.lang.Override
		public boolean equals(
				final java.lang.Object obj ) {
			if (obj == this) {
				return true;
			}
			if (!(obj instanceof mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse)) {
				return super.equals(obj);
			}
			mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse other = (mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse) obj;

			boolean result = true;
			result = result && (hasValue() == other.hasValue());
			if (hasValue()) {
				result = result && getValue().equals(
						other.getValue());
			}
			result = result && getUnknownFields().equals(
					other.getUnknownFields());
			return result;
		}

		private int memoizedHashCode = 0;

		@java.lang.Override
		public int hashCode() {
			if (memoizedHashCode != 0) {
				return memoizedHashCode;
			}
			int hash = 41;
			hash = (19 * hash) + getDescriptorForType().hashCode();
			if (hasValue()) {
				hash = (37 * hash) + VALUE_FIELD_NUMBER;
				hash = (53 * hash) + getValue().hashCode();
			}
			hash = (29 * hash) + getUnknownFields().hashCode();
			memoizedHashCode = hash;
			return hash;
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse parseFrom(
				com.google.protobuf.ByteString data )
				throws com.google.protobuf.InvalidProtocolBufferException {
			return PARSER.parseFrom(data);
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse parseFrom(
				com.google.protobuf.ByteString data,
				com.google.protobuf.ExtensionRegistryLite extensionRegistry )
				throws com.google.protobuf.InvalidProtocolBufferException {
			return PARSER.parseFrom(
					data,
					extensionRegistry);
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse parseFrom(
				byte[] data )
				throws com.google.protobuf.InvalidProtocolBufferException {
			return PARSER.parseFrom(data);
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse parseFrom(
				byte[] data,
				com.google.protobuf.ExtensionRegistryLite extensionRegistry )
				throws com.google.protobuf.InvalidProtocolBufferException {
			return PARSER.parseFrom(
					data,
					extensionRegistry);
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse parseFrom(
				java.io.InputStream input )
				throws java.io.IOException {
			return PARSER.parseFrom(input);
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse parseFrom(
				java.io.InputStream input,
				com.google.protobuf.ExtensionRegistryLite extensionRegistry )
				throws java.io.IOException {
			return PARSER.parseFrom(
					input,
					extensionRegistry);
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse parseDelimitedFrom(
				java.io.InputStream input )
				throws java.io.IOException {
			return PARSER.parseDelimitedFrom(input);
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse parseDelimitedFrom(
				java.io.InputStream input,
				com.google.protobuf.ExtensionRegistryLite extensionRegistry )
				throws java.io.IOException {
			return PARSER.parseDelimitedFrom(
					input,
					extensionRegistry);
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse parseFrom(
				com.google.protobuf.CodedInputStream input )
				throws java.io.IOException {
			return PARSER.parseFrom(input);
		}

		public static mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse parseFrom(
				com.google.protobuf.CodedInputStream input,
				com.google.protobuf.ExtensionRegistryLite extensionRegistry )
				throws java.io.IOException {
			return PARSER.parseFrom(
					input,
					extensionRegistry);
		}

		public static Builder newBuilder() {
			return Builder.create();
		}

		public Builder newBuilderForType() {
			return newBuilder();
		}

		public static Builder newBuilder(
				mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse prototype ) {
			return newBuilder().mergeFrom(
					prototype);
		}

		public Builder toBuilder() {
			return newBuilder(this);
		}

		@java.lang.Override
		protected Builder newBuilderForType(
				com.google.protobuf.GeneratedMessage.BuilderParent parent ) {
			Builder builder = new Builder(
					parent);
			return builder;
		}

		/**
		 * Protobuf type {@code AggregationResponse}
		 */
		public static final class Builder extends
				com.google.protobuf.GeneratedMessage.Builder<Builder> implements
				mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponseOrBuilder
		{
			public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
				return mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.internal_static_AggregationResponse_descriptor;
			}

			protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() {
				return mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.internal_static_AggregationResponse_fieldAccessorTable
						.ensureFieldAccessorsInitialized(
								mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse.class,
								mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse.Builder.class);
			}

			// Construct using
			// mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse.newBuilder()
			private Builder() {
				maybeForceBuilderInitialization();
			}

			private Builder(
					com.google.protobuf.GeneratedMessage.BuilderParent parent ) {
				super(
						parent);
				maybeForceBuilderInitialization();
			}

			private void maybeForceBuilderInitialization() {
				if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {}
			}

			private static Builder create() {
				return new Builder();
			}

			public Builder clear() {
				super.clear();
				value_ = com.google.protobuf.ByteString.EMPTY;
				bitField0_ = (bitField0_ & ~0x00000001);
				return this;
			}

			public Builder clone() {
				return create().mergeFrom(
						buildPartial());
			}

			public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
				return mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.internal_static_AggregationResponse_descriptor;
			}

			public mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse getDefaultInstanceForType() {
				return mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse
						.getDefaultInstance();
			}

			public mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse build() {
				mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse result = buildPartial();
				if (!result.isInitialized()) {
					throw newUninitializedMessageException(result);
				}
				return result;
			}

			public mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse buildPartial() {
				mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse result = new mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse(
						this);
				int from_bitField0_ = bitField0_;
				int to_bitField0_ = 0;
				if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
					to_bitField0_ |= 0x00000001;
				}
				result.value_ = value_;
				result.bitField0_ = to_bitField0_;
				onBuilt();
				return result;
			}

			public Builder mergeFrom(
					com.google.protobuf.Message other ) {
				if (other instanceof mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse) {
					return mergeFrom((mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse) other);
				}
				else {
					super.mergeFrom(other);
					return this;
				}
			}

			public Builder mergeFrom(
					mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse other ) {
				if (other == mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse
						.getDefaultInstance()) return this;
				if (other.hasValue()) {
					setValue(other.getValue());
				}
				this.mergeUnknownFields(other.getUnknownFields());
				return this;
			}

			public final boolean isInitialized() {
				if (!hasValue()) {

					return false;
				}
				return true;
			}

			public Builder mergeFrom(
					com.google.protobuf.CodedInputStream input,
					com.google.protobuf.ExtensionRegistryLite extensionRegistry )
					throws java.io.IOException {
				mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse parsedMessage = null;
				try {
					parsedMessage = PARSER.parsePartialFrom(
							input,
							extensionRegistry);
				}
				catch (com.google.protobuf.InvalidProtocolBufferException e) {
					parsedMessage = (mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse) e
							.getUnfinishedMessage();
					throw e;
				}
				finally {
					if (parsedMessage != null) {
						mergeFrom(parsedMessage);
					}
				}
				return this;
			}

			private int bitField0_;

			// required bytes value = 1;
			private com.google.protobuf.ByteString value_ = com.google.protobuf.ByteString.EMPTY;

			/**
			 * <code>required bytes value = 1;</code>
			 */
			public boolean hasValue() {
				return ((bitField0_ & 0x00000001) == 0x00000001);
			}

			/**
			 * <code>required bytes value = 1;</code>
			 */
			public com.google.protobuf.ByteString getValue() {
				return value_;
			}

			/**
			 * <code>required bytes value = 1;</code>
			 */
			public Builder setValue(
					com.google.protobuf.ByteString value ) {
				if (value == null) {
					throw new NullPointerException();
				}
				bitField0_ |= 0x00000001;
				value_ = value;
				onChanged();
				return this;
			}

			/**
			 * <code>required bytes value = 1;</code>
			 */
			public Builder clearValue() {
				bitField0_ = (bitField0_ & ~0x00000001);
				value_ = getDefaultInstance().getValue();
				onChanged();
				return this;
			}

			// @@protoc_insertion_point(builder_scope:AggregationResponse)
		}

		static {
			defaultInstance = new AggregationResponse(
					true);
			defaultInstance.initFields();
		}

		// @@protoc_insertion_point(class_scope:AggregationResponse)
	}

	/**
	 * Protobuf service {@code AggregationService}
	 */
	public static abstract class AggregationService implements
			com.google.protobuf.Service
	{
		protected AggregationService() {}

		public interface Interface
		{
			/**
			 * <code>rpc aggregate(.AggregationRequest) returns (.AggregationResponse);</code>
			 */
			public abstract void aggregate(
					com.google.protobuf.RpcController controller,
					mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest request,
					com.google.protobuf.RpcCallback<mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse> done );

		}

		public static com.google.protobuf.Service newReflectiveService(
				final Interface impl ) {
			return new AggregationService() {
				@java.lang.Override
				public void aggregate(
						com.google.protobuf.RpcController controller,
						mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest request,
						com.google.protobuf.RpcCallback<mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse> done ) {
					impl.aggregate(
							controller,
							request,
							done);
				}

			};
		}

		public static com.google.protobuf.BlockingService newReflectiveBlockingService(
				final BlockingInterface impl ) {
			return new com.google.protobuf.BlockingService() {
				public final com.google.protobuf.Descriptors.ServiceDescriptor getDescriptorForType() {
					return getDescriptor();
				}

				public final com.google.protobuf.Message callBlockingMethod(
						com.google.protobuf.Descriptors.MethodDescriptor method,
						com.google.protobuf.RpcController controller,
						com.google.protobuf.Message request )
						throws com.google.protobuf.ServiceException {
					if (method.getService() != getDescriptor()) {
						throw new java.lang.IllegalArgumentException(
								"Service.callBlockingMethod() given method descriptor for " + "wrong service type.");
					}
					switch (method.getIndex()) {
						case 0:
							return impl
									.aggregate(
											controller,
											(mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest) request);
						default:
							throw new java.lang.AssertionError(
									"Can't get here.");
					}
				}

				public final com.google.protobuf.Message getRequestPrototype(
						com.google.protobuf.Descriptors.MethodDescriptor method ) {
					if (method.getService() != getDescriptor()) {
						throw new java.lang.IllegalArgumentException(
								"Service.getRequestPrototype() given method " + "descriptor for wrong service type.");
					}
					switch (method.getIndex()) {
						case 0:
							return mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest
									.getDefaultInstance();
						default:
							throw new java.lang.AssertionError(
									"Can't get here.");
					}
				}

				public final com.google.protobuf.Message getResponsePrototype(
						com.google.protobuf.Descriptors.MethodDescriptor method ) {
					if (method.getService() != getDescriptor()) {
						throw new java.lang.IllegalArgumentException(
								"Service.getResponsePrototype() given method " + "descriptor for wrong service type.");
					}
					switch (method.getIndex()) {
						case 0:
							return mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse
									.getDefaultInstance();
						default:
							throw new java.lang.AssertionError(
									"Can't get here.");
					}
				}

			};
		}

		/**
		 * <code>rpc aggregate(.AggregationRequest) returns (.AggregationResponse);</code>
		 */
		public abstract void aggregate(
				com.google.protobuf.RpcController controller,
				mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest request,
				com.google.protobuf.RpcCallback<mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse> done );

		public static final com.google.protobuf.Descriptors.ServiceDescriptor getDescriptor() {
			return mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos
					.getDescriptor()
					.getServices()
					.get(
							0);
		}

		public final com.google.protobuf.Descriptors.ServiceDescriptor getDescriptorForType() {
			return getDescriptor();
		}

		public final void callMethod(
				com.google.protobuf.Descriptors.MethodDescriptor method,
				com.google.protobuf.RpcController controller,
				com.google.protobuf.Message request,
				com.google.protobuf.RpcCallback<com.google.protobuf.Message> done ) {
			if (method.getService() != getDescriptor()) {
				throw new java.lang.IllegalArgumentException(
						"Service.callMethod() given method descriptor for wrong " + "service type.");
			}
			switch (method.getIndex()) {
				case 0:
					this
							.aggregate(
									controller,
									(mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest) request,
									com.google.protobuf.RpcUtil
											.<mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse> specializeCallback(done));
					return;
				default:
					throw new java.lang.AssertionError(
							"Can't get here.");
			}
		}

		public final com.google.protobuf.Message getRequestPrototype(
				com.google.protobuf.Descriptors.MethodDescriptor method ) {
			if (method.getService() != getDescriptor()) {
				throw new java.lang.IllegalArgumentException(
						"Service.getRequestPrototype() given method " + "descriptor for wrong service type.");
			}
			switch (method.getIndex()) {
				case 0:
					return mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest
							.getDefaultInstance();
				default:
					throw new java.lang.AssertionError(
							"Can't get here.");
			}
		}

		public final com.google.protobuf.Message getResponsePrototype(
				com.google.protobuf.Descriptors.MethodDescriptor method ) {
			if (method.getService() != getDescriptor()) {
				throw new java.lang.IllegalArgumentException(
						"Service.getResponsePrototype() given method " + "descriptor for wrong service type.");
			}
			switch (method.getIndex()) {
				case 0:
					return mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse
							.getDefaultInstance();
				default:
					throw new java.lang.AssertionError(
							"Can't get here.");
			}
		}

		public static Stub newStub(
				com.google.protobuf.RpcChannel channel ) {
			return new Stub(
					channel);
		}

		public static final class Stub extends
				mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationService implements
				Interface
		{
			private Stub(
					com.google.protobuf.RpcChannel channel ) {
				this.channel = channel;
			}

			private final com.google.protobuf.RpcChannel channel;

			public com.google.protobuf.RpcChannel getChannel() {
				return channel;
			}

			public void aggregate(
					com.google.protobuf.RpcController controller,
					mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest request,
					com.google.protobuf.RpcCallback<mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse> done ) {
				channel
						.callMethod(
								getDescriptor().getMethods().get(
										0),
								controller,
								request,
								mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse
										.getDefaultInstance(),
								com.google.protobuf.RpcUtil
										.generalizeCallback(
												done,
												mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse.class,
												mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse
														.getDefaultInstance()));
			}
		}

		public static BlockingInterface newBlockingStub(
				com.google.protobuf.BlockingRpcChannel channel ) {
			return new BlockingStub(
					channel);
		}

		public interface BlockingInterface
		{
			public mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse aggregate(
					com.google.protobuf.RpcController controller,
					mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest request )
					throws com.google.protobuf.ServiceException;
		}

		private static final class BlockingStub implements
				BlockingInterface
		{
			private BlockingStub(
					com.google.protobuf.BlockingRpcChannel channel ) {
				this.channel = channel;
			}

			private final com.google.protobuf.BlockingRpcChannel channel;

			public mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse aggregate(
					com.google.protobuf.RpcController controller,
					mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationRequest request )
					throws com.google.protobuf.ServiceException {
				return (mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse) channel
						.callBlockingMethod(
								getDescriptor().getMethods().get(
										0),
								controller,
								request,
								mil.nga.giat.geowave.datastore.hbase.query.generated.AggregationProtos.AggregationResponse
										.getDefaultInstance());
			}

		}

		// @@protoc_insertion_point(class_scope:AggregationService)
	}

	private static com.google.protobuf.Descriptors.Descriptor internal_static_AggregationType_descriptor;
	private static com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_AggregationType_fieldAccessorTable;
	private static com.google.protobuf.Descriptors.Descriptor internal_static_AggregationRequest_descriptor;
	private static com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_AggregationRequest_fieldAccessorTable;
	private static com.google.protobuf.Descriptors.Descriptor internal_static_AggregationResponse_descriptor;
	private static com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_AggregationResponse_fieldAccessorTable;

	public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
		return descriptor;
	}

	private static com.google.protobuf.Descriptors.FileDescriptor descriptor;
	static {
		java.lang.String[] descriptorData = {
			"\n\030AggregationService.proto\"/\n\017Aggregatio"
					+ "nType\022\014\n\004name\030\001 \002(\t\022\016\n\006params\030\002 \001(\014\"\251\001\n\022"
					+ "AggregationRequest\022%\n\013aggregation\030\001 \002(\0132"
					+ "\020.AggregationType\022\023\n\013rangeFilter\030\002 \001(\014\022\016"
					+ "\n\006filter\030\003 \001(\014\022\r\n\005model\030\004 \001(\014\022\017\n\007adapter"
					+ "\030\005 \001(\014\022\024\n\014blockCaching\030\006 \001(\010\022\021\n\tcacheSiz"
					+ "e\030\007 \001(\005\"$\n\023AggregationResponse\022\r\n\005value\030"
					+ "\001 \002(\0142L\n\022AggregationService\0226\n\taggregate"
					+ "\022\023.AggregationRequest\032\024.AggregationRespo"
					+ "nseBQ\n4mil.nga.giat.geowave.datastore.hb",
			"ase.query.generatedB\021AggregationProtosH\001" + "\210\001\001\240\001\001"
		};
		com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
			public com.google.protobuf.ExtensionRegistry assignDescriptors(
					com.google.protobuf.Descriptors.FileDescriptor root ) {
				descriptor = root;
				internal_static_AggregationType_descriptor = getDescriptor().getMessageTypes().get(
						0);
				internal_static_AggregationType_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
						internal_static_AggregationType_descriptor,
						new java.lang.String[] {
							"Name",
							"Params",
						});
				internal_static_AggregationRequest_descriptor = getDescriptor().getMessageTypes().get(
						1);
				internal_static_AggregationRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
						internal_static_AggregationRequest_descriptor,
						new java.lang.String[] {
							"Aggregation",
							"RangeFilter",
							"Filter",
							"Model",
							"Adapter",
							"BlockCaching",
							"CacheSize",
						});
				internal_static_AggregationResponse_descriptor = getDescriptor().getMessageTypes().get(
						2);
				internal_static_AggregationResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
						internal_static_AggregationResponse_descriptor,
						new java.lang.String[] {
							"Value",
						});
				return null;
			}
		};
		com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
				descriptorData,
				new com.google.protobuf.Descriptors.FileDescriptor[] {},
				assigner);
	}

	// @@protoc_insertion_point(outer_class_scope)
}
